Tableau DesktopからAmazon EMRにODBC接続する
TableauがAmazon EMRに対応
少し前ですが、TableauがAmazon EMRに対応したニュースがありました。そこで今回は実際に接続してみたいと思います。
ODBCドライバのセットアップ
TableauからEMRに接続するためには、まず始めにODBCドライバをセットアップします。HiveODBCドライバをダウンロードしてセットアップします。
Use Business Intelligence Tools with Amazon EMR
以下の手順でドライバを登録します。(以下はWindowsの場合)
- HiveODBC.zipをダウンロードします。
- AmazonHiveODBC64.msiを実行してODBCドライバーをインストールします。
- [ODBCデータソース]を開きます。
- [システムDSN] タブを選択します。
- [Sample Amazon Hive DSN]という名前で登録されていることを確認します。
- [構成]を選択してホスト情報をAmazon EMRのIPアドレスにします。
- [Test]を選択して動作確認をします。
ODBCデータソース
EMRを起動する
Amazon EMRでクラスタを起動してHiveに外部から接続できるように10000ポートを開放しておきます。
Tableauから接続する
Tableau Desktopを起動してAmazon EMRに接続してみましょう。
以下は接続できるデータソースの一覧です。
Amazon EMRを選択します。
- ポート番号:10000
- タイプ:HiveServer2
- 認証:ユーザー名
- ユーザ名:default
接続できましたので、次にデータを用意しましょう。
Hiveでテーブルを作成する
TableauからHiveに接続するために、EMRにSSHログインしてテーブルを作成しデータを登録します。下準備は以下のブログを参考にしてください。
Amazon EMR 4.0.0で始める Apache Spark 1.4.1
次にHiveを起動してテーブルを作成します。カンマ区切りのCSVをロードしています。
$ hive > DROP TABLE address; > CREATE TABLE address > (zipcode string, prefecture string, city string, address string, > prefecture_en string, city_en string, address_en string) > ROW FORMAT DELIMITED FIELDS TERMINATED BY "," > STORED AS TEXTFILE; >LOAD DATA LOCAL INPATH 'KEN_ALL_ROME_UTF.CSV' INTO TABLE address; >SELECT * FROM address WHERE zipcode='9071800'; OK 9071800 沖縄県 八重山郡 与那国町 以下に掲載がない場合 OKINAWA KEN YAEYAMA GUN YONAGUNI CHO IKANIKEISAIGANAIBAAI Time taken: 0.967 seconds, Fetched: 1 row(s)
テーブル作成が完了です。
Tableauからデータを表示する
EMRに接続してスキーマとテーブルを指定します。そして、カラム名をドラッグしていつものように表示しましょう。ここで1点注意点があります。表示までに結構遅いです。サーバー側で実行した際は早かったので、データ転送が大量に発生しているかもしれませんね。
まとめ
TableaからAmazon EMRのODBCドライバを用いてHiveに接続しました。様々なツールがつながることで集計や分析の選択肢が広がりますね。次は、SparkSQLにつないでみたいな。